﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;
using DTO;
namespace Presentation
{
    public partial class QLMonHoc : Form
    {
        DataTable DSMonHoc,hocky;
        DTOQuyDinh qd = BUSMonHoc.DocQuyDinh();
        public QLMonHoc()
        {
            InitializeComponent();
        }
        private void LayMonHoc()
        {
            DSMonHoc = BUSMonHoc.LayDSMonHoc();
            dataGridView_ds.DataSource = DSMonHoc;
            dataGridView_ds.Columns[0].HeaderText = "Mã Môn";
            dataGridView_ds.Columns[0].Width = 90;
            dataGridView_ds.Columns[1].HeaderText = "Tên Môn";
            dataGridView_ds.Columns[1].Width = 130;
            dataGridView_ds.Columns[1].HeaderText = "Học Kỳ";
            dataGridView_ds.Columns[1].Width = 90;
        }

        private void QLMonHoc_Load(object sender, EventArgs e)
        {
            
            LayMonHoc();
            LayHocKy();
            textBox_MMonHoc.Focus();
            if (qd.Slmonhoc > dataGridView_ds.Rows.Count)
            {
                button_them.Enabled = true;
            }
            else
            {
                button_them.Enabled = false;
            }
        }
        private bool KTRong(string chuoi)
        {
            if (String.IsNullOrEmpty(chuoi))
            {
                return true;
            }
            else return false;
        }

        private void button_them_Click(object sender, EventArgs e)
        {
            if (KTRong(textBox_MMonHoc.Text) || KTRong(textBox_TMonHoc.Text))
            {
                textBox_MMonHoc.Focus();
                MessageBox.Show("Cần phải nhập đầy đủ thông tin trước khi tạo mới", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else
            {
                DTOMonHoc mon = new DTOMonHoc();
                mon.MaMH = textBox_MMonHoc.Text;
                mon.TenMH = textBox_TMonHoc.Text;
                mon.HocKy = Convert.ToString(comboBox_hocky.SelectedValue);
                var ok = true;
                for (int i = 0; i < dataGridView_ds.RowCount; i++)
                {
                    if (dataGridView_ds.Rows[i].Cells[0].Value.ToString() == mon.MaMH)
                    {
                        ok = false;
                        MessageBox.Show("Môn học này đã có, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }                    
                }
                if (ok)
                {
                    if (BUSMonHoc.ThemMonHoc(mon) == 1)
                    {
                        LayMonHoc();
                    }
                    else
                    {
                        MessageBox.Show("Thực hiện không thành công, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
        }

        private void button_exit_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private void dataGridView_ds_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void button_xoa_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView_ds.SelectedRows.Count; i++)
            {
                string Ma = dataGridView_ds.SelectedRows[i].Cells[0].Value.ToString();
                if (BUSMonHoc.XoaMonHoc(Ma) == 1)
                {
                    LayMonHoc();
                }
                else
                {
                    MessageBox.Show("Thực hiện không thành công, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }            
            
        }

        private void button_xua_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView_ds.SelectedRows.Count; i++)
            {
                string Ma = dataGridView_ds.SelectedRows[i].Cells[0].Value.ToString();
                if (KTRong(textBox_MMonHoc.Text) || KTRong(textBox_TMonHoc.Text))
                {
                    textBox_MMonHoc.Focus();
                    MessageBox.Show("Cần phải nhập đầy đủ thông tin trước khi sửa", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    DTOMonHoc mon = new DTOMonHoc();
                    mon.MaMH = textBox_MMonHoc.Text;
                    mon.TenMH = textBox_TMonHoc.Text;
                    mon.HocKy = comboBox_hocky.SelectedValue.ToString();
                    if (Ma != mon.MaMH)
                    {
                        for (int j = 0; j < dataGridView_ds.RowCount; j++)
                        {
                            if (mon.MaMH == dataGridView_ds.Rows[j].Cells[0].Value.ToString())
                            {
                                MessageBox.Show("Môn học này đã có, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (BUSMonHoc.SuaMonHoc(mon, Ma) == 1)
                        {
                            LayMonHoc();
                            textBox_TMonHoc.Text = textBox_MMonHoc.Text = "";
                            comboBox_hocky.SelectedIndex = 0;
                        }
                        else
                        {
                            MessageBox.Show("Thực hiện không thành công, vui lòng kiểm tra lại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                }
            }
        }

        private void SetHocKy()
        {
            hocky = new DataTable();
            DataColumn ten = new DataColumn("Học Kỳ", typeof(string));
            DataColumn giatri = new DataColumn("Mã HK", typeof(int));
            hocky.Columns.Add(ten);
            hocky.Columns.Add(giatri);
            DataRow giatri1 = hocky.NewRow();
            giatri1[0] = "Học Kỳ I";
            giatri1[1] = 1;
            hocky.Rows.Add(giatri1);
            DataRow giatri2 = hocky.NewRow();
            giatri2[0] = "Học Kỳ II";
            giatri2[1] = 2;
            hocky.Rows.Add(giatri2);
        }
        private void LayHocKy()
        {
            SetHocKy();
            comboBox_hocky.DataSource = hocky;
            comboBox_hocky.DisplayMember = "Học Kỳ";
            comboBox_hocky.ValueMember = "Mã HK";
        }

        private void button_them_MouseHover(object sender, EventArgs e)
        {
            label_thongbao.Text = "Chú ý: Hãy điền đầy đủ thông tin\n trước khi click vào nút Thêm";
        }

        private void button_them_MouseLeave(object sender, EventArgs e)
        {
            label_thongbao.Text = "";
        }

        private void button_xua_MouseHover(object sender, EventArgs e)
        {
            label_thongbao.Text = "Chú ý: Hãy chọn vào đối tượng\ncần sửa trước khi click vào nút Sửa";
        }

        private void button_xua_MouseLeave(object sender, EventArgs e)
        {
            label_thongbao.Text = "";
        }

        private void button_xoa_MouseHover(object sender, EventArgs e)
        {
            label_thongbao.Text = "Chú ý: Hãy chọn vào đối tượng\ncần xóa trước khi click vào nút Xóa";
        }

        private void button_xoa_MouseLeave(object sender, EventArgs e)
        {
            label_thongbao.Text = "";
        }

        private void dataGridView_ds_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            for (int i = 0; i < dataGridView_ds.SelectedRows.Count; i++)
            {
                textBox_MMonHoc.Text = dataGridView_ds.SelectedRows[i].Cells[0].Value.ToString();
                textBox_TMonHoc.Text = dataGridView_ds.SelectedRows[i].Cells[1].Value.ToString();
                comboBox_hocky.SelectedValue = dataGridView_ds.SelectedRows[i].Cells[2].Value;
            }            
        }
    }
}
